package com.cdp.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cdp.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 水泥实体类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("sys_cement") // 指定表名
public class SysCement extends BaseEntity {

    /** 水泥ID */
    @TableId(value = "cement_id", type = IdType.AUTO)
    private Integer cementId;

    /** 型号 */
    @TableField("model")
    private String model;

    /** CaO含量 (%) */
    @TableField("caocontent")
    private BigDecimal caoContent;

    /** SiO2含量 (%) */
    @TableField("sio2content")
    private BigDecimal sio2Content;

    /** Al2O3含量 (%) */
    @TableField("al2o3content")
    private BigDecimal al2o3Content;

    /** 地区 */
    @TableField("region_name")
    private Integer regionName;

    /** 地区名称（非数据库字段） */
    @TableField(exist = false) // 表示此字段不在数据库表中
    private String regionNameStr;

    /** ID */
    @TableField("id")
    @JsonIgnore
    private String id;

    /** 版本 */
    @TableField("version")
    @JsonIgnore
    private Integer version;

    /** 软删除时间 */
    @TableField("delete_time")
    @JsonIgnore
    private Integer deleteTime;

    // 新增字段
    /** 细度 */
    @TableField("fineness")
    private BigDecimal fineness;

    /** 标准稠度 */
    @TableField("standard_consistency")
    private BigDecimal standardConsistency;

    /** 初凝时间 (分钟) */
    @TableField("initial_setting_time")
    private BigDecimal initialSettingTime;

    /** 终凝时间 (分钟) */
    @TableField("final_setting_time")
    private BigDecimal finalSettingTime;

    /** 3天抗折强度 (MPa) */
    @TableField("bending_strength_3d")
    private BigDecimal bendingStrength3d;

    /** 3天抗压强度 (MPa) */
    @TableField("compressive_strength_3d")
    private BigDecimal compressiveStrength3d;

    /** 28天抗折强度 (MPa) */
    @TableField("bending_strength_28d")
    private BigDecimal bendingStrength28d;

    /** 28天抗压强度 (MPa) */
    @TableField("compressive_strength_28d")
    private BigDecimal compressiveStrength28d;

    /** 安定性 */
    @TableField("stability")
    private String stability;

    /** 胶砂流动度 (mm) */
    @TableField("mortar_flow")
    private BigDecimal mortarFlow;
}
